1. Field of the Invention
The present invention relates generally to error control coding, and particularly to providing path metric or soft pointer information to a symbol based code such as a Reed-Solomon code.
2. Background of the Invention
Many information transmitting applications use error control coding to improve reliability of signal transmissions. One commonly used type of code is the Reed-Solomon code, a symbol based code. Reed-Solomon codes are used in many types of system, for example, in fiber optic transmission, satellite transmissions, and magnetic data storage systems. As part of the Reed-Solomon error correcting process, redundancy or parity is added to the transmitted data such that, upon receipt of a data transmission, the possibly corrupt data and redundancy are mathematically processed to correct errors in the transmission.
Reed-Solomon codes are block based error correcting codes with applications in many areas. A Reed-Solomon encoder takes a block of data and adds extra or redundant bits. The decoder processes each block and attempts to correct errors and recover the original data. For example, the encoder takes k data symbols of s bits each and adds parity symbols to make an n symbol codeword. There are n−k parity symbols of s bits each. A Reed-Solomon decoder can correct up to t symbols that contain errors in a codeword, where 2t=n−k.
The usual Inner Reed-Solomon codes used in recording systems are interleaved single correction codes. As stated above, these codes typically correct with a weight of 2t.
Another example of error control methods is the Viterbi algorithm (VA). Given a received sequence of channel output samples of a signal corrupted with additive noise, the VA finds a sequence of symbol bits which is “closest” to the received sequence of channel output samples relative to a predefined metric. The VA forms a trellis corresponding to possible states (portion of received symbol bits in the sequence) for each received output channel symbol per unit increment in time (i.e., clock cycle). Transitions between states in the trellis are usually represented by a trellis diagram in which the number of bits (corresponding to output channel samples and detected symbol bits) for a state is equivalent to the memory of the partial response channel.
For the VA, the decoding process begins with building the accumulated error metric for some number of received channel symbol pairs, and the history of what states preceded the states at each time instant “t” with the smallest accumulated error metric. Once this information is built up, the Viterbi decoder finds the most likely sequence. This is accomplished in several steps. First, the state having the smallest accumulated error metric is selected and the state number of that state is saved. Next, the state history table is worked through backward, for the selected state, and a new state which is listed in the state history table as being the predecessor to that state is selected. This step is called traceback. Next, the list of selected states saved earlier is worked through. The input bit corresponding to a transition from each predecessor state to its successor state is found. The path with the minimum mean squared error is considered the most likely path. These paths are then related to the known sequences in order to reconstruct the initial binary sequence.
Soft output Viterbi algorithms (SOVAs) differ from traditional Viterbi algorithms in that they consider the likelihood that a transition occurred instead of making a hard decision for each state. This information, called soft information, can then be used to recognize conflicting paths within the Viterbi trellis. The soft information is then used in state of the art Turbo and LDPC (Low Density Parity Check) decoders. These decoders take advantage of this soft information through iterative decoding of embedded parity. The problem with such decoders is the iterative nature of the decoding process takes consider hardware or latency to solve the decoding problem. Also, much of the error correcting power of iterative decoders is wasted in low noise environments, such as in that of some magnetic storage.
It would be advantageous to have an improved coding system that avoids unnecessary iterative decoding in low noise environments but that still takes advantage of the Viterbi algorithm's path metric or soft pointer information.